參考官方文件: Get Started: macOS install,並於以補充
在Mac上運行Flutter的最低需求如下:
由於目前Apple設備會有Intel晶片(x86架構)與M1以後的Silicon晶片(ARM架構),在一些設定上會有不同的處理方式需要注意。
開啟左上"蘋果" -> "關於這台Mac",可以查看硬體資訊,包含晶片版與macOS版本。像範例設備的資訊為
Apple M2
Ventura 13.2.1

基於我們的設備是M1,因此需要多加一個設定Rosetta環境的程序,我們開啟終端機並輸入指令sudo softwareupdate --install-rosetta --agree-to-license,出現成功畫面

針對目前的設備進行對應的sdk下載(注意不要載錯!),並且官網上放的是最新的穩定版本,若要查詢或下載其他版本請參見Flutter SDK archive
我們選取sdk 3.7.7(apple silicon)版本進行下載,在下載完後將路徑移至欲放置位置,以桌面為例

在終端機是以Linux語法進行,而我們有幾個常用的指令
cd 資料夾名稱: 移動至目前路徑的對應資料夾cd ..: 回到上一層資料夾pwd: 印出目前所在的當前位置ls: 印出目前所在路徑下的所有檔案延伸參考: [ Linux 指令 ] cd 指令-切換目錄操作教學
延伸參考: Day26-終端機操作
由於稍後的設定會需要更改Mac的設定檔,進入設定檔後會是"Vim編輯器"的方式開啟,操作會與終端機有所不同,沒有滑鼠,只能以方向鍵與鍵盤輸入達成操作。以下介紹幾個常用的功能,首先在"終端機"裡,我們可以透過下列指令進入vim編輯器
vim 檔案名稱: 用vim編輯器開啟對應檔案進入vim編輯器後初始是普通模式,可用上下鍵移動游標,而在我們輸入
i: 進入Insert模式,可新增與修改字詞在插入模式中,當我們修改完欲增加的內容後,可以按下
esc鍵: 退出插入模式回到普通模式當我們需要關閉/保存或離開Vim編輯器時,可以輸入冒號
:: 開啟命令列模式在命令列模式中,輸入
w: 代表存檔(Write)q: 代表離開(quit)wq: 代表存檔並離開接著便會回到終端機中
延伸參考: 鳥哥私房菜:第九章、vim 程式編輯器
延伸參考: 【Vim 編輯器 入門指南 (上)】用思維的速度寫程式
由於在官網的敘述裡,若僅只有在終端機輸入指令會只對「當前」的視窗進行作業(如紅線處所示),因此我們用以下步驟對Mac的設定檔作永久的環境變數設定

一開始,我們在終端機輸入以下指令,取得目前的Flutter SDK放置路徑
cd ~/Desktop: 移動至桌面路徑cd flutter: 移動至flutter資料夾cd bin: 移動至bin資料夾pwd: 印出目前路徑並複製,而此路徑就是我們flutter SDK的放置路徑

輸入指令vim ~/.bash_profile開啟設定檔,輸入i進入插入模式,並輸入指令export PATH="$PATH:剛剛查到的Flutter Bin的路徑
export PATH="$PATH:Users/widelab/Desktop/flutter/bin"
並按下esc鍵,輸入:wq,保存並離開vim編輯器,回到終端機中

輸入指令source ~/.bash_profile,確保讓我們剛剛對bash_profile的修改可以產生作用

輸入flutter doctor -v檢查,我們可以發現在Xcode的部分還有"CocoaPods"以及Chrome尚未安裝的問題

首先輸入指令sudo gem install cocoapods,發現安裝到一半出現錯誤訊息

跟著訊息的指示輸入sudo gem install activesupport -v 6.1.7.3
sudo,Superuser do,代表讓本命令具有系統管理員權限執行
再輸入一次sudo gem install cocoapods指令,成功安裝完CocoaPods,並且沒有跳任何錯誤訊息

輸入flutter doctor -v檢查,可以發現Xcode部分由黃色驚嘆號轉為綠色勾號


開啟VS Code,在Extensions(延伸套件)安裝"Dart"與"Flutter"

開啟下方terminal處,按照前幾天所教導的,輸入flutter create 專案名稱創建專案,cd 專案名稱,並輸入flutter run執行,並輸入1選擇以macOS設備開啟(中間的紅字可以忽略)

成功執行畫面

我們對主畫面的Simulator->右鍵->Device->IPad Air(5th gerneration),可以開啟對應型號的虛擬機

當虛擬機開機完畢後,便可以在終端機輸入flutter devices來檢查,並且重新執行一次flutter run後便會出現在設備的選擇清單中,或是直接以Simulator開啟

Demo Code在Simulator上的顯示

因為在App Store上只會有最新版本的Xcode釋放,因此當我們的目前的MacOS與當前版本不支援時,就需要按照以下方法安裝硬體對應版本,例如,到Apple開發者網站,Xcode最低要求與對應支援SDK的表格,尋找自己的設備與對應Xcode版本

參考資料: Apple Developer: Minimum requirements and supported SDKs
並登入Apple Developer More Downloads,到裡面尋找剛剛確認的對應Xcode版本號

舉例,我們可以點選Xcode 14.3並進行下載

補充一下,新版的Xcode15問題很多,我換14.3就一切OK了!
另外請問一下,我上一篇用Ardroid studio有出現模擬器,
但是Mac 底下終端機執行,卻出現
2023-09-24 15:59:43.954 xcodebuild[42306:422657] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:arm64, id:00008112-0014046C14DA201E }
{ platform:macOS, arch:x86_64, id:00008112-0014046C14DA201E }
/Users/user/Library/CloudStorage/Dropbox/Code/Flutter/flu_app/build/macos/Build/Products/Debug/flu_app.app: replacing existing signature
/Users/user/Library/CloudStorage/Dropbox/Code/Flutter/flu_app/build/macos/Build/Products/Debug/flu_app.app: resource fork, Finder information, or similar detritus not allowed
Command CodeSign failed with a nonzero exit code
** BUILD FAILED **
Building macOS application...
Exception: Build process failed
選2,chrome會正常出現。
可能要先確認VScode有沒有連接上Android Emulator,再對要執行的檔案右鍵->Run Without Debugging試試看!因為自己本身是以iOS開發為主,可以參考下列YT
How to Run Flutter App on Android Emulator and iOS Simulator - 07 - Flutter App Dev Tutorial
我們對主畫面的Simulator->右鍵->Device->IPad Air(5th gerneration),可以開啟對應型號的虛擬機
我按了右鍵沒有東西出來,沒有辦法選對應型號的虛擬機....

那可以從Xcode左上角,開啟看看!
如果程式成功運行在虛擬機上的話,可以從Xcode裡面,點選虛擬機的圖示,再選取不同型號